## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10
General statistics
# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 49315
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535300 SRR13535304 SRR13535302
## 5442647 5284506 6692745 6783939 3380080 5245017

Create DDS objects
# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 49315 with 0 metadata columns"
## [1] "DESeqDataSet object of length 13961 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
## experimental_class_type regime treatment
## <factor> <factor> <character>
## SRR13535276 A in space without gravity without nanoceria
## SRR13535278 A in space without gravity without nanoceria
## SRR13535280 A in space without gravity without nanoceria
## SRR13535300 E on land without nanoceria
## SRR13535304 E on land without nanoceria
## SRR13535302 E on land without nanoceria
Sample-to-sample comparisons
# Transform data (blinded rlog)
rld <- get_transformed_data(dds)
PCA plot
pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 42.7426 37.4963 27.3551 20.29918 19.16927 8.601e-14
## Proportion of Variance 0.3837 0.2953 0.1572 0.08655 0.07719 0.000e+00
## Cumulative Proportion 0.3837 0.6791 0.8363 0.92281 1.00000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
geom_point() +
geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
scale_color_manual(values = colors_default) +
scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap
pheatmap(
cor(rld$matrix),
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
color = brewer.pal(8, 'YlOrRd')
)

Wald test results
# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
## experimental_class_type regime treatment sizeFactor
## <factor> <factor> <character> <numeric>
## SRR13535276 A in space without gravity without nanoceria 0.983326898127425
## SRR13535278 A in space without gravity without nanoceria 1.20126816782016
## SRR13535280 A in space without gravity without nanoceria 1.11440765689284
## SRR13535300 E on land without nanoceria 1.51592028243075
## SRR13535304 E on land without nanoceria 0.599688743398815
## SRR13535302 E on land without nanoceria 0.802283983223576
# Wald test results
res <- results(
dds_full,
contrast = c('experimental_class_type', condition, control),
alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 13961 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092 -4.96252421751868 2.55325078860222 -1.94361017714026 0.0519424776329694 NA
## ENSMUSG00000098104 6.17973004874648 -0.33987239137312 0.953764994701288 -0.35634814997542 0.721579854312876 NA
## ENSMUSG00000033845 78.7389250960824 -0.139776787060953 0.484080078114348 -0.288747241170158 0.772774808477305 0.919754141278944
## ENSMUSG00000102275 1.93535022630578 -0.248188373898006 1.75297446668176 -0.141581282908134 0.887410752060653 NA
## ENSMUSG00000025903 64.5755304394773 -0.218442860316403 0.653768545718189 -0.334128739822494 0.738282413869906 0.907746452475444
## ... ... ... ... ... ... ...
## ENSMUSG00000061654 1.27223045415217 0.82592477969525 3.1845042730154 0.259357409783967 0.795359487690604 NA
## ENSMUSG00000079834 14.0996039438114 1.90361159520321 1.04533718702978 1.82105029728459 0.0685992115483928 0.344032440155812
## ENSMUSG00000095041 158.204029324634 0.14087153672037 0.612231200501589 0.230095324454154 0.818017697977464 0.938168604078944
## ENSMUSG00000063897 20.5239557083965 -0.458057808387909 0.85340306175572 -0.53674263535631 0.591445401224602 0.836773443790903
## ENSMUSG00000095742 7.49461231124379 -0.218512871147471 1.06290732214928 -0.205580361141573 0.837118719387324 NA
mcols(res)
## DataFrame with 6 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MLE): experimental_class_type A vs E
## lfcSE results standard error: experimental class type A vs E
## stat results Wald statistic: experimental class type A vs E
## pvalue results Wald test p-value: experimental class type A vs E
## padj results BH adjusted p-values
summary(res)
##
## out of 13961 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 239, 1.7%
## LFC < 0 (down) : 104, 0.74%
## outliers [1] : 169, 1.2%
## low counts [2] : 3519, 25%
## (mean count < 8)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 169 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000067780 221.987320791496 -2.58250067154418 1.46924379482687 -1.75770738704974 NA NA
## ENSMUSG00000025981 118.330916745571 -0.529114681877753 1.15228645724075 -0.459186757383894 NA NA
## ENSMUSG00000038349 75.0130587145933 -4.20090784629918 1.2670521530176 -3.3154971847799 NA NA
## ENSMUSG00000026024 42.2766653527863 -3.72064194556767 1.35025225558996 -2.7555161860789 NA NA
## ENSMUSG00000085842 18.6638352368536 6.04611364896142 3.4761934668531 1.73929147114898 NA NA
## ... ... ... ... ... ... ...
## ENSMUSG00000005871 313.558334721303 -0.607218664256467 1.04276744988615 -0.58231455567851 NA NA
## ENSMUSG00000044595 35.3300487472487 1.59557282754053 1.6716228739635 0.954505260960773 NA NA
## ENSMUSG00000024597 269.224401081688 -1.42521060960639 1.09094789247257 -1.3063965927614 NA NA
## ENSMUSG00000033417 193.435350548664 -1.25262638635326 1.07429741513002 -1.16599590459003 NA NA
## ENSMUSG00000064340 120.809089287493 0.332759294173197 1.16820472186879 0.284846729296623 NA NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 3519 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092 -4.96252421751868 2.55325078860222 -1.94361017714026 0.0519424776329694 NA
## ENSMUSG00000098104 6.17973004874648 -0.33987239137312 0.953764994701288 -0.35634814997542 0.721579854312876 NA
## ENSMUSG00000102275 1.93535022630578 -0.248188373898006 1.75297446668176 -0.141581282908134 0.887410752060653 NA
## ENSMUSG00000090031 4.72015366818405 2.1245193788572 1.34158979627185 1.58358343568282 0.113288545836657 NA
## ENSMUSG00000098201 1.51075135056325 1.80207939300779 1.85669850860225 0.970582668461567 0.331756140017339 NA
## ... ... ... ... ... ... ...
## ENSMUSG00000065947 5.24532303154048 0.261969679752137 1.04998352551639 0.249498847730301 0.802974932105927 NA
## ENSMUSG00000064366 2.13604339327703 -0.772910994556363 2.41975524757873 -0.319417013489178 0.74941031112191 NA
## ENSMUSG00000064372 6.8623045792859 -0.401501479636074 1.08758740783686 -0.369167091070533 0.712003183607388 NA
## ENSMUSG00000061654 1.27223045415217 0.82592477969525 3.1845042730154 0.259357409783967 0.795359487690604 NA
## ENSMUSG00000095742 7.49461231124379 -0.218512871147471 1.06290732214928 -0.205580361141573 0.837118719387324 NA
Shrunken LFC results
plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
dds_full,
coef = str_c('experimental_class_type_', condition, '_vs_', control),
type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 13961 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092 -0.130070165046024 0.514057374821996 0.0519424776329694 NA
## ENSMUSG00000098104 6.17973004874648 -0.071111304593757 0.441210143862636 0.721579854312876 NA
## ENSMUSG00000033845 78.7389250960824 -0.0702828863133241 0.346908974110517 0.772774808477305 0.919754141278944
## ENSMUSG00000102275 1.93535022630578 -0.0175173717430073 0.472510831706172 0.887410752060653 NA
## ENSMUSG00000025903 64.5755304394773 -0.0783318923381139 0.396772730740019 0.738282413869906 0.907746452475444
## ... ... ... ... ... ...
## ENSMUSG00000061654 1.27223045415217 0.0194986220220197 0.484853846019169 0.795359487690604 NA
## ENSMUSG00000079834 14.0996039438114 0.414943722234983 0.670690726188883 0.0685992115483928 0.344032440155812
## ENSMUSG00000095041 158.204029324634 0.056308861955517 0.384739422710713 0.818017697977464 0.938168604078944
## ENSMUSG00000063897 20.5239557083965 -0.115423392208099 0.438228224109671 0.591445401224602 0.836773443790903
## ENSMUSG00000095742 7.49461231124379 -0.0384303203014102 0.44585071090712 0.837118719387324 NA
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MAP): experimental class type A vs E
## lfcSE results posterior SD: experimental class type A vs E
## pvalue results Wald test p-value: experimental class type A vs E
## padj results BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
##
## out of 13961 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 239, 1.7%
## LFC < 0 (down) : 104, 0.74%
## outliers [1] : 169, 1.2%
## low counts [2] : 3519, 25%
## (mean count < 8)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 169 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000067780 221.987320791496 -0.241730977693639 0.561932359751804 NA NA
## ENSMUSG00000025981 118.330916745571 -0.0799970361610996 0.459272428593947 NA NA
## ENSMUSG00000038349 75.0130587145933 -3.20423347581797 1.58668667425245 NA NA
## ENSMUSG00000026024 42.2766653527863 -0.466287425904363 0.878919607987184 NA NA
## ENSMUSG00000085842 18.6638352368536 0.0641953569622817 0.495754979225337 NA NA
## ... ... ... ... ... ...
## ENSMUSG00000005871 313.558334721303 -0.109231903832901 0.458138215728882 NA NA
## ENSMUSG00000044595 35.3300487472487 0.122220326008435 0.494985093144649 NA NA
## ENSMUSG00000024597 269.224401081688 -0.252702992825214 0.531987334436254 NA NA
## ENSMUSG00000033417 193.435350548664 -0.225314649745519 0.51185751589372 NA NA
## ENSMUSG00000064340 120.809089287493 0.051449697149458 0.455209156466279 NA NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E
## Wald test p-value: experimental class type A vs E
## DataFrame with 3519 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000025900 2.61497527977092 -0.130070165046024 0.514057374821996 0.0519424776329694 NA
## ENSMUSG00000098104 6.17973004874648 -0.071111304593757 0.441210143862636 0.721579854312876 NA
## ENSMUSG00000102275 1.93535022630578 -0.0175173717430073 0.472510831706172 0.887410752060653 NA
## ENSMUSG00000090031 4.72015366818405 0.28577344000955 0.575076985428166 0.113288545836657 NA
## ENSMUSG00000098201 1.51075135056325 0.122791746087299 0.495431509538189 0.331756140017339 NA
## ... ... ... ... ... ...
## ENSMUSG00000065947 5.24532303154048 0.0481425932652042 0.445980015261331 0.802974932105927 NA
## ENSMUSG00000064366 2.13604339327703 -0.0302867419065904 0.481739447131531 0.74941031112191 NA
## ENSMUSG00000064372 6.8623045792859 -0.0666771353265023 0.452667315844499 0.712003183607388 NA
## ENSMUSG00000061654 1.27223045415217 0.0194986220220197 0.484853846019169 0.795359487690604 NA
## ENSMUSG00000095742 7.49461231124379 -0.0384303203014102 0.44585071090712 0.837118719387324 NA
Visualizing results
Heatmaps
# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7],
color = brewer.pal(8, 'YlOrRd'),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
scale = 'row',
fontsize_row = 10,
height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
fontsize_row = 10,
height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
fontsize = 10,
fontsize_row = 10,
height = 20)

Volcano plots
# Unshrunken LFC
res_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

GSEA (all)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info
sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] grid parallel stats4 stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] VennDiagram_1.6.20 futile.logger_1.4.3 fgsea_1.12.0 Rcpp_1.0.3 RColorBrewer_1.1-2 pheatmap_1.0.12 DESeq2_1.26.0 SummarizedExperiment_1.16.1 DelayedArray_0.12.3 BiocParallel_1.20.1 matrixStats_0.57.0 Biobase_2.46.0 GenomicRanges_1.38.0 GenomeInfoDb_1.22.1 IRanges_2.20.2 S4Vectors_0.24.4 BiocGenerics_0.32.0 scales_1.1.1 forcats_0.4.0 stringr_1.4.0 dplyr_1.0.2 purrr_0.3.3 readr_1.3.1 tidyr_1.0.0 tibble_3.1.0 ggplot2_3.3.3 tidyverse_1.2.1
##
## loaded via a namespace (and not attached):
## [1] colorspace_1.4-1 ellipsis_0.3.0 htmlTable_1.13.3 XVector_0.26.0 base64enc_0.1-3 rstudioapi_0.10 farver_2.1.0 bit64_0.9-7 mvtnorm_1.1-1 apeglm_1.8.0 AnnotationDbi_1.48.0 fansi_0.4.0 lubridate_1.7.4 xml2_1.2.2 splines_3.6.3 geneplotter_1.64.0 knitr_1.25 Formula_1.2-3 jsonlite_1.6 broom_0.7.5 annotate_1.64.0 cluster_2.1.0 png_0.1-7 compiler_3.6.3 httr_1.4.1 backports_1.1.5 assertthat_0.2.1 Matrix_1.2-18 cli_1.1.0 formatR_1.7 acepack_1.4.1 htmltools_0.5.1.1 tools_3.6.3 coda_0.19-3 gtable_0.3.0 glue_1.4.2 GenomeInfoDbData_1.2.2 fastmatch_1.1-0 bbmle_1.0.23.1 cellranger_1.1.0 jquerylib_0.1.3 vctrs_0.3.4 xfun_0.22 rvest_0.3.5 lifecycle_0.2.0 XML_3.99-0.3 MASS_7.3-51.5 zlibbioc_1.32.0 hms_0.5.2 lambda.r_1.2.4 yaml_2.2.0 memoise_1.1.0 gridExtra_2.3 emdbook_1.3.12 sass_0.3.1 bdsmatrix_1.3-4 rpart_4.1-15 latticeExtra_0.6-29 stringi_1.4.3 RSQLite_2.2.1 genefilter_1.68.0 checkmate_1.9.4 rlang_0.4.8 pkgconfig_2.0.3 bitops_1.0-6 evaluate_0.14 lattice_0.20-38 labeling_0.3 htmlwidgets_1.5.1 bit_1.1-15.1 tidyselect_1.1.0 plyr_1.8.4 magrittr_1.5 R6_2.4.0 generics_0.0.2 Hmisc_4.3-0 DBI_1.1.0 pillar_1.5.1 haven_2.2.0 foreign_0.8-75 withr_2.1.2 survival_3.1-8 RCurl_1.95-4.12 nnet_7.3-12 modelr_0.1.5 crayon_1.3.4 futile.options_1.0.1 utf8_1.1.4 rmarkdown_2.7 jpeg_0.1-8.1 locfit_1.5-9.4 readxl_1.3.1 data.table_1.13.6 blob_1.2.1 digest_0.6.27 xtable_1.8-4 numDeriv_2016.8-1.1 munsell_0.5.0 bslib_0.2.4